//
//$Id: generic_ga_sa_omp.cpp 395 2010-03-26 14:01:03Z Oleg.Bulychov $
#include "stdafx.h"

#include "projects/generic/ga/generic_ga.h"
#include "projects/generic/sa/generic_sa.h"
#include "solvers/hybrids/ga_sa/ga_sa_omp.h"
#include "src/heo/include/run_omp.h"

typedef Generic_Problem         TProblem;
typedef Generic_Solution        TSolution;
typedef Generic_Config          TConfig;

typedef Environment<TProblem, TSolution, TConfig>           TEnvironment;

typedef struct GA_Traits<TEnvironment, validator_ga_sa_tag> TTraits;
typedef GA_OMP<TTraits>                                     TSolver;

static struct ga_register
{
    ga_register()
    {
        TSolver::register_Selection< ga::selection::tournament_selection >();
        TSolver::register_Selection< ga::selection::roulette_selection >();
        TSolver::register_Selection< ga::selection::random_selection >();

        TSolver::register_Operator< ga::inter_operator::crossover>();
        TSolver::register_Operator< ga::inter_operator::mutation>();
        TSolver::register_Operator< ga::inter_operator::sa >();
    }
} reg;

int main(int argc, char* argv[])
{
    return Run_OMP<TSolver>(argc, argv);
}
//EOF!
